package com.liu.dao;

import com.liu.dto.PatientMapData;
import com.liu.dto.PatientType;
import com.liu.entity.TPatient;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 患者表(TPatient)表数据库访问层
 *
 * @author makejava
 * @since 2022-11-04 17:48:44
 */
@Repository("tPatientDao")



public interface TPatientDao {

  void save(List<TPatient> cachedDataList);

 /**
* @Author Lilyan
* @Description //TODO
* @Date 19:17 2022/11/4
* @Param []
* @return java.lang.Integer
**/
 Integer getAsymptomatic();
 Integer getMiJie();
    /**
    * @Author Lilyan
    * @Description //TODO
    * @Date 18:30 2022/11/4
    * @Param []
    * @return java.util.List<PatientMapData>
    **/

   List<PatientMapData> getPatientMapData();
    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    TPatient queryById(Integer id);


    /**
     * 统计总行数
     *
     * @param tPatient 查询条件
     * @return 总行数
     */
    long count(TPatient tPatient);

    /**
     * 新增数据
     *
     * @param tPatient 实例对象
     * @return 影响行数
     */
    int insert(TPatient tPatient);

    /**
     * 批量新增数据（MyBatis原生foreach方法）
     *
     * @param entities List<TPatient> 实例对象列表
     * @return 影响行数
     */
    int insertBatch(@Param("entities") List<TPatient> entities);

    /**
     * 批量新增或按主键更新数据（MyBatis原生foreach方法）
     *
     * @param entities List<TPatient> 实例对象列表
     * @return 影响行数
     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常，请自行校验入参
     */
    int insertOrUpdateBatch(@Param("entities") List<TPatient> entities);

    /**
     * 修改数据
     *
     * @param tPatient 实例对象
     * @return 影响行数
     */
    int update(TPatient tPatient);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Integer id);

 List<PatientType> getPatientType();

 /**
 * @Author Lilyan
 * @Description //TODO
 * @Date 16:36 2022/11/5
 * @Param []
 * @return java.util.List<com.liu.entity.TPatient>
 **/
 List<TPatient> getAll();

 void deleteByIds(Integer[] ids);

 /**
 * @Author Lilyan
 * @Description //TODO 查询多个
 * @Date 10:35 2022/11/8
 * @Param [ids]
 * @return java.util.List<com.liu.entity.TPatient>
 **/
   List<TPatient> queryByIds(Integer[] ids);
}

